package sf.j2tree.list;

/**
 * Created by ping on 2017-09-11.
 */
public interface SeqList<T> {
    /***
     * 判断顺序表是否为空
     *
     * @return
     */
    boolean isEmpty();

    /***
     * 顺序表长度
     * @return
     */
    int length();

    /***
     * 在制定位置插入元素
     * @param index
     * @param t
     * @return
     */
    boolean add(int index, T t);

    /***
     * 添加元素
     * @param t
     * @return
     */
    boolean add(T t);

    /***
     * 获取顺序表指定位置元素
     * @param index
     * @return
     */
    T get(int index);

    /***
     * 替换指定位置元素
     * @param index
     * @param t
     * @return
     */
    T replace(int index, T t);

    /***
     * 删除指定位置元素
     * @param index
     * @return
     */
    T remove(int index);

    /***
     * 删除所有元素
     * @return
     */
    boolean removeAll();

    /**
     * 清空链表
     */
    void clear();

    /***
     * 删除指定元素
     * @param t
     * @return
     */
    boolean remove(T t);

    /***
     * 返回元素位置
     * @param t
     * @return
     */
    int indexOf(T t);

    /***
     * 是否包含
     * @param t
     * @return
     */
    boolean contains(T t);

    /***
     * 最后一个元素的位置
     * @return
     */
    int lastIndexOf();
}
